package com.example.myapplication.views;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.RelativeLayout;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SwitchCompat;

import com.example.myapplication.R;
import com.example.myapplication.utils.SpUtils;
import com.example.myapplication.widget.HeaderView;

// 设置界面，继承自AppCompatActivity类，实现View.OnClickListener接口
public class SettingsActivity extends AppCompatActivity implements View.OnClickListener {

   private HeaderView mHeaderView; // 页面头部视图
   private Button mBtnLogout; // 退出登录按钮
   private Button mBtnChangePassword; // 修改密码按钮
   private SpUtils mSpUtils; // SharedPreferences工具类
   private SwitchCompat mAdminSwitch; // 管理员开关按钮
   private RelativeLayout mRlAddStudent; // 添加学生的布局
   private RelativeLayout mRlAddCourse; // 添加课程的布局

   @Override
   protected void onCreate(@Nullable Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_settings);

      mHeaderView = findViewById(R.id.header_view); // 查找并绑定页面头部视图
      mHeaderView.setRightVisibility(View.GONE); // 设置页面头部右侧隐藏
      mHeaderView.setTitle("设置"); // 设置页面标题为"设置"

      mAdminSwitch = findViewById(R.id.admin_switch); // 查找并绑定管理员开关按钮
      mAdminSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
         @Override
         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            showAdminViews(isChecked); // 根据开关状态显示或隐藏管理员视图
         }
      });

      mRlAddStudent = findViewById(R.id.add_student_view); // 查找并绑定添加学生的布局
      mRlAddStudent.setOnClickListener(this); // 设置添加学生布局的点击事件监听器

      mRlAddCourse = findViewById(R.id.admin_view1); // 查找并绑定添加课程的布局
      mRlAddCourse.setOnClickListener(this); // 设置添加课程布局的点击事件监听器

      mBtnLogout = findViewById(R.id.logout_button); // 查找并绑定退出登录按钮
      mBtnLogout.setOnClickListener(this); // 设置退出登录按钮的点击事件监听器

      mBtnChangePassword = findViewById(R.id.change_password); // 查找并绑定修改密码按钮
      mBtnChangePassword.setOnClickListener(this); // 设置修改密码按钮的点击事件监听器

      mSpUtils = new SpUtils(this); // 初始化SharedPreferences工具类
   }

   @Override
   public void onClick(View v) {
      if (v.getId() == R.id.logout_button) { // 处理退出登录的点击事件
         mSpUtils.putInt(SpUtils.LOGIN_KEY, -1); // 将登录状态设置为-1
         Intent intent = new Intent(SettingsActivity.this, LoginActivity.class); // 创建跳转到登录界面的Intent
         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); // 设置Intent标志
         startActivity(intent); // 启动跳转至登录界面的Intent
         finish(); // 结束当前界面
      } else if (v.getId() == R.id.add_student_view) { // 处理添加学生的点击事件
         Intent intent = new Intent(SettingsActivity.this, AddStudentActivity.class); // 创建跳转到添加学生界面的Intent
         startActivity(intent); // 启动跳转至添加学生界面的Intent
      }else if (v.getId() == R.id.admin_view1) { // 处理添加课程的点击事件
         Intent intent = new Intent(SettingsActivity.this, AddCourseActivity.class); // 创建跳转到添加课程界面的Intent
         startActivity(intent); // 启动跳转至添加课程界面的Intent

      } else if (v.getId() == R.id.change_password) { // 处理修改密码的点击事件
         Intent intent = new Intent(SettingsActivity.this, ChangePasswordActivity.class); // 创建跳转到修改密码界面的Intent
         startActivity(intent); // 启动跳转至修改密码界面的Intent
      }
   }

   // 根据参数show的值显示或隐藏管理员视图
   private void showAdminViews(boolean show) {
      View view = findViewById(R.id.admin_views); // 查找管理员视图
      view.setVisibility(show ? View.VISIBLE : View.GONE); // 根据show参数设置管理员视图的可见性
   }
}
